home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / util4 / aman-115.lha / aman-1.15 / Source / aman.c next >
C/C++ Source or Header  |  1995-07-21  |  4KB  |  185 lines

  1. #ifndef MAKE_ID
  2. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  3. #endif
  4.  
  5. #ifdef _DCC
  6. #define __inline
  7. #endif
  8.  
  9. #include "aman.h"
  10. #include "amanExtern.h"
  11.  
  12. #include "version.h"
  13.  
  14. struct ObjApp * CreateApp(void)
  15. {
  16.     struct ObjApp * Object;
  17.  
  18.     APTR    MN_Project, MN_Project_About, MN_Project_Quit, GR_aman, GR_pattern;
  19.     APTR    LA_pattern, GR_listview;
  20.     static const struct Hook lv_confuncHook = { { NULL,NULL },(VOID *)lv_confunc,NULL,NULL };
  21.     static const struct Hook lv_desfuncHook = { { NULL,NULL },(VOID *)lv_desfunc,NULL,NULL };
  22.  
  23.  
  24.     if (!(Object = AllocVec(sizeof(struct ObjApp), MEMF_PUBLIC|MEMF_CLEAR)))
  25.         return(NULL);
  26.  
  27.     LA_pattern = Label("Pattern");
  28.  
  29.     Object->STR_pattern = StringObject,
  30.         MUIA_Frame, MUIV_Frame_String,
  31.         MUIA_ControlChar, 's',
  32.         MUIA_HelpNode, "STR_pattern",
  33.     End;
  34.  
  35.     GR_pattern = GroupObject,
  36.         MUIA_HelpNode, "GR_pattern",
  37.         MUIA_Group_Horiz, TRUE,
  38.         Child, LA_pattern,
  39.         Child, Object->STR_pattern,
  40.     End;
  41.  
  42.     Object->LV_aman = ListObject,
  43.         MUIA_Frame, MUIV_Frame_InputList,
  44.         MUIA_List_Active, MUIV_List_Active_Top,
  45.         MUIA_List_ConstructHook, &lv_confuncHook,
  46.         MUIA_List_DestructHook, &lv_desfuncHook,
  47.     End;
  48.  
  49.     Object->LV_aman = ListviewObject,
  50.         MUIA_HelpNode, "LV_aman",
  51.         MUIA_Listview_DoubleClick, TRUE,
  52.         MUIA_Listview_List, Object->LV_aman,
  53.     End;
  54.  
  55.     GR_listview = GroupObject,
  56.         MUIA_HelpNode, "GR_listview",
  57.         MUIA_Frame, MUIV_Frame_Group,
  58.         MUIA_FrameTitle, "Available Documents",
  59.         Child, Object->LV_aman,
  60.     End;
  61.  
  62.     GR_aman = GroupObject,
  63.         Child, GR_pattern,
  64.         Child, GR_listview,
  65.     End;
  66.  
  67.     Object->WI_aman = WindowObject,
  68.         MUIA_Window_Title, "AMan Doument Selection",
  69.         MUIA_Window_ID, MAKE_ID('0', 'W', 'I', 'N'),
  70.         WindowContents, GR_aman,
  71.     End;
  72.  
  73.     MN_Project_About = MenuitemObject,
  74.         MUIA_Menuitem_Title, "About",
  75.         MUIA_Menuitem_Shortcut, "?",
  76.     End;
  77.  
  78.     MN_Project_Quit = MenuitemObject,
  79.         MUIA_Menuitem_Title, "Quit",
  80.         MUIA_Menuitem_Shortcut, "Q",
  81.     End;
  82.  
  83.     MN_Project = MenuitemObject,
  84.         MUIA_Menuitem_Title, "Project",
  85.         MUIA_Family_Child, MN_Project_About,
  86.         MUIA_Family_Child, MN_Project_Quit,
  87.     End;
  88.  
  89.     Object->MN_aman = MenustripObject,
  90.         MUIA_Family_Child, MN_Project,
  91.     End;
  92.  
  93.     Object->App = ApplicationObject,
  94.         MUIA_Application_Author, "Tobias Ferber",
  95.         MUIA_Application_Menustrip, Object->MN_aman,
  96.         MUIA_Application_Base, "AMAN",
  97.         MUIA_Application_Title, "AMan",
  98.         MUIA_Application_Version, "$VER: AMan " VERSION " (23.10.94)",
  99.         MUIA_Application_Copyright, "Tobias Ferber",
  100.         MUIA_Application_Description, "Amiga Manual Browser",
  101.         SubWindow, Object->WI_aman,
  102.     End;
  103.  
  104.  
  105.     if (!Object->App)
  106.     {
  107.         FreeVec(Object);
  108.         return(NULL);
  109.     }
  110.  
  111.     DoMethod(MN_Project_About,
  112.         MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
  113.         Object->App,
  114.         2,
  115.         MUIM_Application_ReturnID, ID_ABOUT
  116.         );
  117.  
  118.     DoMethod(MN_Project_Quit,
  119.         MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime,
  120.         Object->App,
  121.         2,
  122.         MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
  123.         );
  124.  
  125.     DoMethod(Object->WI_aman,
  126.         MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
  127.         Object->WI_aman,
  128.         3,
  129.         MUIM_Set, MUIA_Window_Open, FALSE
  130.         );
  131.  
  132.     DoMethod(Object->WI_aman,
  133.         MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
  134.         Object->App,
  135.         2,
  136.         MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
  137.         );
  138.  
  139.     DoMethod(Object->STR_pattern,
  140.         MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
  141.         Object->LV_aman,
  142.         1,
  143.         MUIM_List_Clear);
  144.  
  145.     DoMethod(Object->STR_pattern,
  146.         MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
  147.         Object->WI_aman,
  148.         3,
  149.         MUIM_Set, MUIA_Window_ActiveObject, Object->LV_aman
  150.         );
  151.  
  152.     DoMethod(Object->STR_pattern,
  153.         MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
  154.         Object->App,
  155.         2,
  156.         MUIM_Application_ReturnID, ID_SUBJECT
  157.         );
  158.  
  159.     DoMethod(Object->LV_aman,
  160.         MUIM_Notify, MUIA_Listview_DoubleClick, TRUE,
  161.         Object->App,
  162.         2,
  163.         MUIM_Application_ReturnID, ID_SELECT
  164.         );
  165.  
  166.     DoMethod(Object->WI_aman,
  167.         MUIM_Window_SetCycleChain, Object->STR_pattern,
  168.         Object->LV_aman,
  169.         0
  170.         );
  171.  
  172.     set(Object->WI_aman,
  173.         MUIA_Window_Open, TRUE
  174.         );
  175.  
  176.  
  177.     return(Object);
  178. }
  179.  
  180. void DisposeApp(struct ObjApp * Object)
  181. {
  182.     MUI_DisposeObject(Object->App);
  183.     FreeVec(Object);
  184. }
  185.